Non-volatile memory is a type of memory that preserves data with or without power. Memory is an array having many individual memory cells. Most computer and electronic systems use a binary number system with bits to store data in the memory array. In a memory single bit/cell, two distinctly different current levels (corresponding to a one or a zero) that flow through the memory under the correct conditions represent each bit, while in a multilevel memory more levels are required. For example, in a two bit/cell memory, four distinctly different current levels are required.
Some memory is single-level, where one bit of information is stored in each memory cell. To each possible state (0,1) corresponds a distribution that can be described by threshold range or by current range. These ranges are usually defined by reference cells used during verify phase. In order to determine the value of the memory cell, current through the memory cell is compared to a reference cell (a read reference cell). A current through the memory cell that is lower than that through the reference cell represents one bit value, while a current through the memory cell that is higher than that through the reference cell represents the other bit value.
The currents through the memory cells fall in a range called cells distribution. The difference between matrix cell distributions themselves, and read reference cell values and the matrix cell distributions of the memory cells is one measure of the error margin. For example, in the case of a single bit/cell the distance between the one matrix cell distribution, defined during erase phase, and the zero matrix cell distribution, defined during program phase, is a measure or error margin. In this same way, the distance between each one of these two distributions and the read reference cell value, used to read if a cell of these two distributions is one or zero, is a measure of error margin. The greater the distance between these two distributions (1 and 0), the higher the current difference is between cell current and read reference current in read phase and the lower is the possibility of having a fail, along with a faster access time. Usually the matrix distribution for the value ‘one’ is obtained during erase using two reference cells (in verify). One reference cell is used to define the first border, called the depletion reference cell, and another reference cell is used to define the second border, called the erase reference cell. These two reference cells (depletion and erase) define in which current/threshold range matrix ‘one’ distribution should be. Usually one reference cell is used to define the ‘zero’, and it is called the program reference cell. The program reference cell is used during program (verify) to define the border closest to the ‘one’ distribution, so the program reference cell defines the position of the less programmed cell that is defined to be acceptable. The distance of the threshold/current of the erase reference cell and the program reference cell is a measure of the ideal distance between matrix ‘one’ distribution and the matrix ‘zero’ distribution, so it is a measure of the error margin. According to the program reference and erase reference value, the read reference value used to distinguish between ‘zero’ and ‘one’ is defined.
For multilevel memory, there are more distributions (for example in a 2 bit/cell there are 4 distributions—11, 10, 01, 00) and so there are more reference cells to define their borders and more read reference cells (three in the case of a 2 bit cell) to distinguish during read.
One problem with current comparison arises when a read operation of the memory cell occurs at a different temperature than a verify operation. The reference cell responds differently to changes in temperature compared to the memory cell because of the different resistance between memory cells in different positions along the memory array. With changing temperature, there is a change in the cells distributions of the memory and of the reference cell currents, which do not change in the same way. A change in error margin follows a change in cells distribution, with a reduction in error margin possible in particular conditions.
The problem with reduced error margins between cell distributions is compounded in multi-level memory, where the distributions tend to be closer together. Reduced error margins decrease device operating speed and accuracy, and could impact functionality.
Accordingly, what is needed is a system and method for matching resistance in a non-volatile memory in order to improve error margins. The present invention addresses such a need.